package com.hksj.tdengine.taos.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.hksj.common.config.annotation.DS_TAOS;
import io.swagger.annotations.ApiModelProperty;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * @author zengke
 * @version 1.0
 * @see TaosMapper
 * @since 2024/8/9 10:52
 */

@Mapper
@DS_TAOS
public interface TaosMapper {

    /**
     * 检查数据库是否存在
     * @param databaseName 数据库名称
     * @return 返回存在数量
     */
    @Select("select count(1) from information_schema.ins_databases where name = #{databaseName}")
    @InterceptorIgnore(dynamicTableName = "false")
    Integer checkDatabase(@Param("databaseName") String databaseName);

    /**
     * 检查超级表是否存在
     * @param databaseName 数据库名称
     * @param stableName 超级表名称
     * @return 返回存在的数量
     */
    @Select("select count(1) from information_schema.ins_stables where db_name = #{databaseName} AND stable_name = #{stableName}")
    @InterceptorIgnore(dynamicTableName = "false")
    Integer checkStable(@Param("databaseName") String databaseName, @Param("stableName") String stableName);

    /**
     * 检查从表是否存在
     * @param databaseName 数据库名称
     * @param stableName 从表名称
     * @return 返回存在的数量
     */
    @Select("select count(1) from information_schema.ins_tables where db_name = #{databaseName} AND table_name = #{stableName}")
    @InterceptorIgnore(dynamicTableName = "false")
    Integer checkTable(@Param("databaseName") String databaseName, @Param("stableName") String stableName);
}
